package com.aiwei.tdjk.service;


import com.aiwei.tdjk.bean.Pager;
import com.aiwei.tdjk.dto.request.DeliveryPagerRequest;
import com.aiwei.tdjk.entity.Delivery;
import com.aiwei.tdjk.enums.DeliveryStatusEnum;

import java.util.HashMap;
import java.util.List;

public interface DeliveryService {

    /**
     * 分页查询
     * @param request
     * @return
     */
    Pager<Delivery> find(DeliveryPagerRequest request);

    /**
     * 分页查询
     * @param id
     * @return
     */
    Delivery get(Long id);

    /**
     * 新增
     * @param delivery
     * @return
     */
    int add(Delivery delivery);

    /**
     * 更新
     * @param delivery
     */
    void update(Delivery delivery);

    /**
     * 修改发货单状态
     * @param ids
     * @param newStatus
     */
    void changeStatus(Long[] ids, DeliveryStatusEnum newStatus);

    /**
     * 删除
     * @param id
     */
    void delete(Long id);


    /**
     * 查询某个订单的已经发货的订单项目和发货数量
     * @param saleOrderCode 订单号码
     * @return 订单项目号=》已经发送的数量
     */
    HashMap<String,Integer> getHasDeliveryItemList(String saleOrderCode);


    HashMap<String,Integer> getHasNotDeliveryItemList(String saleOrderCode);

    /**
     * 根据订单号查询，已经制定的发货单号
     */
    List<Delivery> getListBySaleOrderCode(String saleOrderCode);

    /**
     * @param bookingContainerId
     */
    void deleteDeliveryByBookingContainerId(Long bookingContainerId);





}
